package com.scors.logos.model;

import java.io.Serializable;
import java.util.Set;

public interface IUser extends Serializable {

    /**
     * User Id
     * 
     * @return
     */
    Long getId();

    /**
     * User Name
     * 
     * @return
     */
    String getName();

    /**
     * modify the name of user
     * 
     * @param name
     */
    void setName(String name);

    /**
     * retrieve the fullname of the user
     * 
     * @return
     */
    String getFullname();

    /**
     * modifie le fullname du user
     * 
     * @param fullname
     */
    void setFullname(String fullname);

    /**
     * on retourne le login du compte
     * 
     * @return
     */
    String getLogin();

    /**
     * on modifie le login du compte
     * 
     * @param login
     */
    void setLogin(String login);

    /**
     * on retourne le password
     * 
     * @return
     */
    String getPassword();

    /**
     * on modifie le password
     * 
     * @param password
     */
    void setPassword(String password);

    /**
     * retrieve the friend list of the current user
     * 
     * @return
     */
    Set<IUser> getFriends();

    /**
     * retrieve the media list of the current user
     * 
     * @return
     */
    Set<IMedia> getMediaList();

    /**
     * Add the new friend to a current user
     * 
     * @param user
     */
    void addFriend(IUser user);

    /**
     * delete the friend of the current user
     * 
     * @param user
     */
    void deleteFriend(IUser user);

}
